<?php

namespace App\Containers\AppSection\Log\Models;

use App\Containers\AppSection\Profile\Models\Profile;
use App\Containers\AppSection\Type\Models\Type;
use App\Ship\Parents\Models\Model;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

/**
 * Логирование
 *
 * @property string $key Ключ
 * @property int $profile_id Профиль
 * @property string $log Лог
 * @property string $type_key Тип
 * @property string $relation_id Id действия
 * @property Carbon $created_at Время создания
 * @property Carbon $updated_at Время обновления
 *
 * @property Profile $profile Профиль
 * @property Type $type Тип
 */
class Log extends Model
{
    public $incrementing = false;
    protected $table = 'logs';
    protected $fillable = [
        'type_key',
        'profile_id',
        'log',
        'relation_id'
    ];
    /**
     * A resource key to be used in the serialized responses.
     */
    protected string $resourceKey = 'Log';


    /**
     * Профиль
     * @return BelongsTo|Profile Profile
     */
    public function profile(): BelongsTo
    {
        return $this->belongsTo(Profile::class, 'profile_id', 'id');
    }

    /**
     * Тип
     * @return BelongsTo Type
     */
    public function type(): BelongsTo
    {
        return $this->belongsTo(Type::class, 'type_key', 'key');
    }
}
